package com.zlk.algorithm.huawei.leetcode.slidingWindow;

/**
 * @program: algorithm
 * @ClassName Code35_lengthOfLongestSubstring
 * @description:无重复字符的最长子串
 * @author: slfang
 * @create: 2025-01-10 15:29
 * @Version 1.0
 **/
public class Code35_lengthOfLongestSubstring {

    //给出一个字符串s
    //给定一个字符串 s ，请你找出其中不含有重复字符的 最长
    //子串的长度。
    //示例 1:
    //
    //输入: s = "abcabcbb"
    //输出: 3
    //解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。
    //示例 2:
    //
    //输入: s = "bbbbb"
    //输出: 1
    //解释: 因为无重复字符的最长子串是 "b"，所以其长度为 1。
    public int lengthOfLongestSubstring(String arr) {
        if("".equals(arr)||arr.length()==0){
            return 0;
        }
        int left = 0;
        int right = 1;
        int length = arr.length();
        int ans = 1;
        while (right<length){
            String rightStr = ""+arr.charAt(right);
            //
            while (left<right&&
                    arr.substring(left,right).contains(rightStr)){
                left++;
            }
            ans = Math.max(arr.substring(left,right).length()+1,ans);
            right++;
        }
        return ans;
    }
}
